DVR with enhanced functionality

ABSTRACT

A personal video on-demand system and method which permits a user to receive available content using a single tuner and perform one of a plurality of operations on the available content. These operations include recording two or more signals, where one or both may be simultaneously viewed, recording one or more signals and playing back one or more signals, playing back two or more signals, watching one or more signals while recording one or more other signals, viewing two or more signals live, or viewing at least one signal live, while viewing one or more signals in a playback mode.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part and claims benefit under 35U.S.C. §120 of U.S. Non-Provisional application of Doug Dillon, et alentitled “Personal Video On-Demand System and Method”, Ser. No.09/766,252 filed on, Jan. 19, 2001, which is a continuation-in-Part andclaims benefit under 35 U.S.C. §120 of U.S. Non-Provisional applicationof Michael Ficco et al entitled “Personal Video On-Demand System andMethod”, Ser. No. 09/533,843 filed on Mar. 23, 2000, the entire contentsof both are incorporated by reference herein. This application alsoclaims benefit under 35 U.S.C. §119(e) of U.S. Provisional applicationof Adrian Yap, et al entitled “Digital Video Recorder”, Ser. No.60/199,438 filed on Apr. 25, 2000, the entire contents of which isincorporated by reference herein.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to audio and video devices. Thepresent invention more specifically relates to the field ofvideo-on-demand equipment and services.

2. Background of the Prior Art

Providing video-on-demand has been a elusive goal sought after by avariety of companies. Many of the efforts to date have been stymied bythe enormous bandwidth consumed when a large number of movies or othercontent are requested by individuals. This problem is exacerbated whenan insufficient number of consumers request a particular movie such thatit is not economically justified to consume the available bandwidth forsuch a small number of requests. In order to be profitable, conventionalvideo-on-demand services offer only the most popular movies. The resultis that the most attractive feature of video-on-demand is destroyed.This most attractive feature is the availability of a wide variety ofmovies or other content on demand of a consumer.

Various other problems exist in conventional video-on-demand servicesincluding inconvenient and limited ways in which to designate desiredcontent.

Another shortcoming of conventional video-on-demand services is theinability to aggregate a video library in a fast and efficient manner.Another shortcoming of conventional video-on-demand services is thenegative impact of aggregating a video library on the normal viewinghabits of the consumer.

Another shortcoming of conventional video-on-demand services is alimitation on the number of signals which may be recorded, viewed,and/or played back at any time. Other problems include the inability tomanipulate the recorded, viewed and/or played back signal(s) in a mannerdesired by the user.

SUMMARY OF THE INVENTION

An object of the present invention is to remedy the above-noteddeficiencies in conventional video-on-demand services and equipment.Another object is to enable video-on-demand equipment with a capacitylarge enough to accommodate potentially desired content. Yet anotherobject of the invention is to provide an expandable storage device thatcan be easily added to by a consumer thereby increasing the capacity forthe personal video library. Another object of the invention is toprovide simultaneous recording, play back, and viewing of multiplesignals. Yet another object is to provide a set of functions to enablethe user to manipulate the signals input thereto.

One aspect of achieving the above object is to utilize an array of harddisk drives to create a video server farm. Such a video server farmprovides the enormous capacity necessary for an adequate content librarywhile also providing an expandable storage space.

The invention creates a new paradigm for video-on-demand services inwhich a video server farm is utilized in combination with an electronicprogram guide and associated receiver, tuner, control unit, and userinterface that enables a consumer to create his own, personalvideo-on-demand library.

More specifically, the present invention includes a content feed thatprovides a variety of content or broadcast television programs fromnumerous transmission media to, for example, a set-top box or otherapparatus. The invention includes a receiver/tuner that receives thecontent stream from the content feed and routes the content stream to adisplay unit, a decoder/decrypter or to a storage device in response toa control signal from a control unit. In this way, the content streammay be directly viewed as in a conventional cable box ordecoded/decrypted before being viewed by a display unit. Another routeprovided by the invention is to a storage device so that selectedcontent may be recorded.

To aid in the selection of desired content, an electronic program guideis utilized. This electronic program guide receives programminginformation for available content that will be broadcast to theinventive apparatus in the future. With a user interface device, theuser can interact with the electronic program guide and select thedesired programs that will be recorded on the storage device. Enhancedfunctionality for the electronic program guide includes the ability totrack previously selected content so that identical or similar programscan be recorded in the future. Other enhancements include inputtingselection criteria such as actor, director, theme, keywords, channelinformation, station call letters, etc. which can be utilized by thecontrol unit to search the electronic program guide for content matchingthe consumer's criteria.

Preferably, the storage device is expandable and/or removable such thatthe user can easily add and/or remove additional storage capacity asdesired or needed. For example, the storage device may include magnetictape, magnetic or optical disk (for example, a read/write disk or awrite once/read many disk), CD, DVD, of a portable digitalaudio/video/data player.

Further enhancements to the present invention include the ability totranscode from one medium type to another to ensure efficient storage,regardless of the target medium. Transcoding may include using differentcompression techniques or different sets of compression parameters forthe same compression technique.

Further enhancements to the present invention include a file manager forthe creation and management of a database, which includes an entry foreach program recorded. The file manager further supports other databasemanipulation operations, such as adding, deleting, searching, etc. Thefile manager also enables the user to print a physical label that may beattached to storage media. The file manager also permits annotation ofthe database entry for each program recorded. The information containedin these annotations may be supplied electronically, such as via anelectronic program guide or may be manually generated by a user.

Further enhancements to the present invention include the use ofinternal and external memory in combination. This enables the presentinvention to record program information to internal memory and then toexternal memory or to stream program information directly to externalmemory. The combination of internal and external also permits recordingfrom removable memory into internal memory and then ultimate playbackfrom the internal memory.

Further enhancements to the present invention include a multiplereceiver/tuner embodiment in which multiple content streams can bereceived, tuned and provided to the storage device. With a plurality ofreceiver/tuners, this modification has the ability to simultaneouslyrecord a plurality of programs on a storage device. A multiple displayunit such as a picture-in-picture television can be utilized tosimultaneously view the two programs being recorded. Alternatively, oneprogram can be recorded while another is being viewed either from a livebroadcast or from the previously recorded video library in the storageunit.

Further enhancements to the present invention include several modes,including, but not limited to recording two or more signals where one orboth may also be simultaneously viewed, recording one or more signalsand playing back one or more signals, playing back two or more signals,watching one or more signals, while recording one or more other signals,viewing two or more live signals (through the use of picture-in-pictureor other similar function), and viewing at least one signal live, whileviewing one or more signals in playback mode.

Further enhancements to the present invention include various functions,which enable the user to manipulate the recorded, viewed, and/or playedback signals in a manner desired by the user. These functions includebut are not limited to an intelligent agent function, by which the usermay select at least one recorded event from a program guide or schedule,based on actors, actresses, directors, or other relevant information, aduplicate episode filter function, which alerts a user if a duplicateepisode is being recorded, a status indicator function, which displaysthe status of the program the user is watching, a clear convertfunction, which offers the user the opportunity to clear paused (livecached) programming or convert paused programming to recordedprogramming during a channel change, a record after watching featurewhich allows a user to record an entire program after viewing theprogram for a period of time, an active snapshot feature, which permitsthe user to capture snippets of digital audio/video broadcasts, apersonal instant replay feature, which permits a user to rewindrecording in fixed increments for playback, and a back to pause feature,which enables the user to jump back from a live broadcast to the lastpaused video segment.

It is noted that the various functions described above may be utilizedin conjunction with one or more of the modes. For example, theintelligent agent duplicate filter, and active snapshot functions may beused with any recording mode, the status indicator and personal instantreplay features may be utilized with any playback mode, and the statusindicator, clear convert, record after watching, and personal instantreplay functions may be utilized in any live viewing mode. The back topause function may be utilized to jump between any two or more live orplayback signals.

The invention also includes a method of determining potentially desiredcontent which includes manually inputting content selection(s) andselection criteria. As mentioned above, the selection criteria mayinclude a variety of criteria such as actor, program name, director,keywords, channel information, station call letters, etc. Such selectioncriteria may be utilized in conjunction with tagged content in which thecontent stream is tagged with additional information associated with thecontent. For example, a typical tag may include which actors star in theprogram, the director, a synopsis, keywords, a thumbnail, a preview, asnippet, etc. The tags may be in-band or otherwise transmitted alongwith the content or associated with the program and sent separately suchas with an electronic program guide. In any of these alternatives, theselection criteria may be utilized to search through these tags forpotentially desired content.

Furthermore, the methods of the invention track previously selectedcontent and previously utilized selection criteria in order to learn theconsumers preferences. This tracked information is then added to theselection of potentially desired content so that the appropriate contentmay be recorded by the inventive apparatus.

The method of operating the inventive apparatus may also includedownloading the electronic program guide on a periodic basis. Selectionsand criteria may then be inputted. The electronic program guide is thenscanned for content matching the selections and/or input criteria. If amatch is found, then a broadcast channel is tuned and the content outputto the storage device. Appropriate changes are made to a file manager tokeep track of the recorded content. Thereafter, the consumer can managethe recorded content by, for example, deleting, sorting, cataloging,commenting, etc.

On the content provider side, the electronic program guide may becompiled and uploaded to the user. Because different regions of thecountry have different available channels, the program listings may bewinnowed to only those available to the particular consumer. Tags canthen be generated that describe or otherwise indicate the programcontent and these tags are associated with the program listings.

The inventive methods also include simultaneous recording of multiplecontent streams. After scanning the electronic program for contentmatching the consumer's preferences, the invention determines whetherthere are scheduling conflicts. Such scheduling conflicts are resolvedby multiple, simultaneous recording of plural content streams.

Further scope of applicability of the present invention will becomeapparent from the detailed description given hereinafter. However, itshould be understood that the detailed description and specificexamples, while indicating preferred embodiments of the invention, aregiven by way of illustration only, since various changes andmodifications within the spirit and scope of the invention will becomeapparent to those skilled in the art from this detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will become more fully understood from thedetailed description given hereinbelow and the accompanying drawingswhich are given by way of illustration only, and thus are not limitativeof the present invention, and wherein:

FIG. 1 is a block diagram of a personalized video-on-demand systemaccording to a first aspect of the invention;

FIG. 2 is a block diagram of a personalized video-on-demand systemaccording to a second aspect of the invention;

FIG. 3 is a high-level flow chart of the inventive method of determiningpotentially desired content;

FIG. 4 is a high-level flow chart of a method of creating avideo-on-demand service;

FIG. 5 is a high-level flow chart of a method of generating anelectronic program guide according to the invention; and

FIG. 6 is a block diagram of an exemplary architecture in accordancewith the present invention;

FIG. 7 is a block diagram showing an exemplary construction of a memorydevice according to an exemplary embodiment of the present invention;

FIG. 8 is a flow diagram showing data flow for recording or cachingprograms such as pay-per-view (PPV) events for later playback inaccordance with an exemplary embodiment of the present invention;

FIG. 9 illustrates an alternative recording path in accordance with thepresent invention;

FIG. 10 is a high-level flow chart of a method of creating apersonalized video-on-demand service capable of simultaneous, multiplerecording of plural content streams.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

As shown in FIG. 1, the personalized video-on-demand system includes acontent feed 10. This content feed 10 may include a broadcast televisionnetwork or internet content provider. The content feed is compatiblewith all cable, satellite and terrestrial broadcast television systemsas indicated by transmitter 20 that is connected to a broadcast antenna22, satellite up-link 24, internet connection 26, cable 28, and phoneline 30. These various connections and standards are exemplary only andare intended to include any system for feeding content to a consumer.

On the consumer side, an apparatus 100 such as a set-top box, hardwarecard, specially programmed computer or other device having thefunctionality described herein is provided that may be placed near to orwithin a television or other display device (such as a computer monitor)such as display unit 270. The apparatus 100 inputs content from devicessuch as satellite down-link 34, antenna 32, internet connection 26,cable 28, and/or phone line 30. It is to be understood that theapparatus 100 may include just a single communication path including 26,28, 30, 32, or 34.

The received content is fed to receiver/tuner 40. The receiver/tuner 40provides an appropriate connection to the corresponding communicationpath. The receiver/tuner 40 may also select or tune a channel within thespectrum of content being fed to the apparatus 100. If there is only onechannel, then the receiver unit 40 need not include a tuner circuit.

A switch 50 is connected to the receiver/tuner 40 and routes the contentto display unit 270, decoder/decrypter 60, or storage device 200. Theswitch 50 is controlled by control unit 70 to route the content to thedesired destination. It is noted that all possible permutations fromswitch 50 can be achieved simultaneously. For example, switch 50 maydecode, decrypt, output to display unit 270, and/or record to a storagedevice and is not limited to performing only a single function at agiven time.

The decoder/decrypter 60 includes decoder circuitry and/or decryptioncircuitry. For example, many video broadcasts are encoded and thedecoder 60 decodes this encoded content stream so that it may be viewedby the consumer on display unit 270. Conventional decoding processessuch as MPEG1 and MPEG2 are examples of such decoding processes.

The component 60 may also include decryption circuitry that decrypts anencrypted content from the content feed. Some broadcasts, particularlypay-per-view broadcasts or premium channels such as HBO® and Showtime®are encrypted so that non-subscribers cannot view the content. Thedecrypter 60 decrypts any such encrypted content for viewing on thedisplay unit 270 by the consumer. The decrypter may include a variety ofdecryption schemes for corresponding premium channels or services. Aswith conventional cable boxes, the decryption circuitry may be enabledor disabled depending upon the consumer's subscription to the premiumchannel or associated encrypted content. Authorization for decryptionmay be governed by appropriate payment for the associated content. Forexample, pay-per-view content is typically encrypted with decryptionauthorization governed by an appropriate payment by the consumer.

As a further alternative, the decrypted content may be stored for laterpurchase and playback. In this alternative, the consumer need not pay inadvance or contemporaneous with the live broadcast and can, instead,store the encrypted content for later playback. Such delayed playbackmay also include an associated payment if required by the contentprovider by utilizing the user interface 90 and communication channel(s)with content feed 10 or by having the consumer contact the contentprovider using other communication channels and payment mechanisms.

The component 60 may also implement an encryption scheme separate fromand/or in addition to the encryption scheme utilized by the content feed10. In other words, encrypted content supplied from content feed may befurther encrypted to further protect unauthorized access to the content.

The electronic program guide (EPG) 80 is connected to an input port 82so that updates to the electronic program guide may be downloaded. Inother words, the electronic program guide stores available content forthe near future. This available content may be updated on a periodicbasis so that the consumer can make appropriate selection for upcomingprograms. The electronic program guide 80 preferably displaysinformation on the display unit 270. For example, the electronic programguide 80 may display programs in a tabular format by channel and time sothat the user can make selections of desired content. Other examples andfunctionality of the electronic program guide 80 are described below.

The user interface 90 may include various control devices such as akeypad connected directly to the apparatus 100 or a remote controldevice. The user interface 90 permits the user to interact with theapparatus 100 and electronic program guide 80 and thereby select contentfor recording and on-demand playback.

The storage device 200 is connected to the switch 50 as well as thecontrol unit 70 and the decoder/decrypter 60. The storage device 200 mayalso be directly connected to the display unit 270. The storage device200 may include a plurality of hard disk drives 210, 220, 230 as shownin FIG. 1. Also, the storage device 200 may include only one hard diskdrive although the storage capacity would be necessarily limited by thecapacity of the single hard disk drive 210.

Preferably, the storage device may be expanded by plugging in additionalhard disk drives such as hard disk drive 220 as well as hard disk drive230. Preferably, adding storage capacity could be easily accomplished bythe user by simply plugging in a storage device such as a hard discdrive. The collection of hard disk drives 210, 220 . . . 230 may also beconsidered a hard disk drive array. Such an array may use conventionaldata loss prevention methods such as error correcting codes, andRedundant Array of Independent Discs (RAID) methodologies.

The storage device 200 may be further expanded by adding an optionalarray of hard disk drives 250 as shown by the dotted lines in FIG. 1.The storage devices 200, 250 may be provided in a separate unit fromapparatus 100.

Alternatively, the storage device 200 may include other types of storagedevices. For example, the storage device may include solid state memorydevices such as chips, cards, or sticks. The storage device may alsoinclude magnetic tape, magnetic or optical disk (for example, aread/write disk or a write once/read many disk), CD, DVD, a portabledigital audio/video/data player, a jukebox, or any other known or notyet invented form of storage.

The storage device further may be reconfigurable, including, asexamples, expandable, addable, removable, and/or replaceable. Thestorage device may be manually reconfigurable or automaticallyreconfigurable. For example, a user may replace all or part of thestorage device. Alternatively, the storage device may be configured as a“juke-box” including a plurality of memory devices 210, 220, 230 (eitherof the same or different types), which are automatically loaded forrecording or playback, possibly based on a user initiated request. Thememory devices 210, 200, 230 may be integrated with the storage device200 and/or the apparatus 100 or accessible via a network (either localor wide-area) utilizing a transfer protocol (for example, the 1394protocol) or a combination of integrated and removable memory.Preferably, the memory devices 210, 220, 230 may be plugged in orotherwise expanded with a modular design. This modular design isindicated in FIG. 1 by the plurality of storage devices 210, 220, 230 aswell as the additional array of storage devices 250. Such a modulardesign permits a user to easily increase the storage capacity andthereby the size of the video-on-demand library.

The control unit is connected to the storage devices 200, 250, thedecoder/decrypter 60, the switch 50, the receiving device 40, theelectronic program guide 80, as well as the user interface 90.

In general, the control unit 70 coordinates all of the operationsperformed by the apparatus 100 by sending appropriate control signals toeach of the various components. For example, when the electronic programguide indicates that the desired content will appear on channel 7 at8:00 pm, the control unit 70 sends a control signal to receiver/tuner 40to tune channel 7 at 8:00 pm, then control unit 70 sends a controlsignal to control switch 50 to switch the tuned content and output thetuned content to the storage device 200. The control unit 70 alsocontrols the recording of this content on the storage device 200. Forexample, the control unit 70 may synchronize the sending/receiving ofdata between the storage device 200 and the control unit 70, in order toavoid periods of inaccessibility. For example, if one of the memorydevices 210, 220, 230 is being removed or otherwise not available, thecontrol unit 70 controls via synchronization, recording and/or playback,such that during the period of inaccessibility, the memory device 210,220, 230 is not accessed. The control unit 70 may accomplishsynchronization by sending a sync pulse to a storage device 200 and/ormemory devices 210, 220, 230, in order to coordinate the availability ofthe memory devices 210, 220, and 230, with the operation desired by thecontrol unit 70. Any necessary decoding or decryption is controlled bycontrol unit 70 which sends commands to the decoder/decrypter the outputof which is sent to display unit 270. The control unit 70 may also beutilized to control the rate at which information is recorded or playedback. For example, the control unit 70 may record on a first medium, forexample an internal medium, in real time, and then stream theinformation to a removable medium, either faster or slower than realtime, depending on the capabilities of the removable medium. Similarly,the control unit 70 may permit the playback of information from eitheran internal or external memory, either faster or slower than real time,and subsequently output the data for playback in real time. The controlunit 70 may utilize one or more medium to vary the rate at which contentis either played back or recorded by utilizing at least one medium as abuffer.

The control unit 70 also coordinates the operations between the userinterface 90 and the electronic program guide 80. For example, theon-demand playback of previously recorded content may be controlled withthe user interface 90 by having the consumer input a command. Thiscommand is input by the control unit 70. For example, a playpreviously-recorded content command may be input by user interface 90.This command is sent to control unit 70 which activates the storagedevice 200 to read the corresponding content from the storage device200. Any necessary decoding is then performed by decoder 60 under thecontrol of control unit 70 the results of which are output to displayunit 270.

Although the system operates generally as described above, furtherdetails of the operation including both the provider and consumer sideof the system are described below in relation to the flow charts ofFIGS. 3-5. The block diagram of FIG. 6 further describes the operationof the system shown in FIG. 2.

FIG. 3 illustrates a particular example of how the FIG. 1 personalvideo-on-demand system operates. Specifically, FIG. 3 provides detailson how the electronic program guide 80 interacts with the system.

As shown in FIG. 3, the consumer can manually input content selectionsin step 300. This may be done with the user interface 90. To aid in thisprocess, the electronic program guide 80 may send a display to displayunit 270 that aids in the manual input of content selections. In thisway, the consumer can designate or otherwise select certain programs orother content to be recorded in the video-on-demand library. Step 300may also delete previously selected content. In this way, the list ofcontent selections may be tailored to the user's preferences.

Enhancing the electronic program guide 80 are tags. A tag includes datathat is associated with or otherwise describes content. For example, atag may indicate which actors are in a particular movie, the director ofthe movie, a synopsis of the movie, when it was released, criticalreviews of the movie, related programs, sequels, keywords, a thumbnail,a preview, a snippet, or other information concerning or relating to thecontent. The tags may be in-band or otherwise transmitted along with thecontent. Alternatively, the tags may be associated with the program orotherwise sent separately such as with an electronic program guide.

Step 310 scans the electronic program guide 80 for content that has beentagged. In other words, step 310 searches or scans through theelectronic program guide 80 for any content that has an associated tag.Step 320 allows the user to manually input selection criteria. Theseselection criteria are preferably based on the scope of the tags. Inother words, if the tags are limited to actors and actresses, then theselection criteria may be similarly limited since other criteria wouldnot effect the content selection. In this way, the user can manuallyinput one or more selection criteria in order to search for desiredcontent. This search may return a list or group of programs all of whichmay be recorded or which may be provided to the user for selection whereonly the selected content is recorded. This selection may be done byrepeating step 300.

To further enhance the electronic program guide, step 330 tracksselected content and/or selection criteria. In other words, previouslyselected content may be tracked or otherwise stored by the control unitby the storage device 200. Also, previously input selection criteria mayalso be tracked or otherwise stored by the control unit 70 in thestorage device 200. By tracking selected content and/or selectioncriteria, the electronic program guide 80 may learn the user'spreferences and thereby speed the content selection process.

However, the consumer may not desire this tracking to be utilized. Thus,step 340 decides whether the consumer wants to add the trackedinformation to the selection. This may be done, for example, byprompting the user and inputting a command via the user interface 90. Asanother option, a default option may be utilized to make the decision ofstep 340.

If the tracked information is to be added to the selections, then step350 is performed which updates the selections with the trackedinformation. In this way, a variety of content selections appropriate toand personalized to the consumer can be generated. The selection may befurther managed by rearranging, deleting or by adding further selectionby repeating the process shown in FIG. 3. The selection(s) may bepresented to the user for modification(s). Alternatively, the system maysimply retrieve the selections without user modification(s) to theselection(s).

FIG. 4 illustrates further details of how the personalizedvideo-on-demand system of FIG. 1 operates. This process begins in step400 by downloading the electronic program guide 80. This may be done byutilizing port 82. For example, port 82 may be connected to a telephoneline, cable connection, satellite up-link, or radio broadcast antenna.Using any or all of these methods, the information in the electronicprogram guide 80 may be down-loaded by step 400.

Step 410 then inputs criteria and/or selection(s). This process isdescribed above in relation to FIG. 3 as indicated by connector A. Inother words, the FIG. 3 process ends with connector point A whichconnects this process to the process of FIG. 4.

With the criteria and/or content selection in hand, step 420 can thenscan the electronic program guide 80 for matches. In other words, theavailable content within the electronic program guide 80 is scanned forcontent matching the user's selections and/or criteria.

Step 430 then determines whether there is a match between the consumerselections and/or criteria and the electronic program guide 80. If thereis no match, then the process may continue by proceeding to step 440which decides whether to update the electronic program guide 80.Preferably, the electronic program guide 80 is updated on a periodicbasis. For example, it may be most convenient to update the electronicprogram guide during off-peak hours. By tracking the user's viewinghabits, the system can determine when these off-peak hours occur so thatthe downloading of the electronic program guide can occur when theconsumer is not watching TV. If the electronic program guide 80 is to beupdated, then the process proceeds to step 400 which downloads theelectronic program guide 80. If not, then the process returns to theinput step 410 which inputs the consumer's selections and/or criteria.

If there is a match between the consumer's selections and/or criteria,then the flow proceeds to step 450 which tunes the channel and/orotherwise outputs the matching content to the storage device. Forexample, the control unit 70 controls the receiver/tuner 40 to tune thechannel of the available content spectrum to the appropriate channel.Then, the switch 50 is controlled by control unit 70 to switch the tunedchannel to be fed to the storage device 200. The storage device 200 maythen record the routed content.

Once the content has been recorded by storage device 200, step 460 thenupdates a file manager that may be part of the storage device 250, thecontrol unit 70, other elements of the apparatus 100, or a separateentity. Essentially, the recorded content is stored as a file or fileswithin the storage device 200. These file(s) have an associated addressor header information that is managed by the file manager. Step 460updates the file manager with information related to the recordedcontent.

By using the file manager, the user can then manage the recorded contentwith step 470. Specifically, the managing of the recorded contentincludes sorting, cataloging, adding comments, deleting, reorganizing,etc. Such management may also include on-demand playback. Such playbackincludes various commands including play, rewind, fast forward, pause,slow, skip, etc. in a manner similar to a video cassette recorder. It isnoted that a VCR is given only by way of example, and any other devicecapable of the functions described above or similar functions, is alsowithin the scope of the present invention.

The file manager may manage the recorded content by maintaining a database, containing an entry for each recorded item. The entry may describethe content recorded and identify the memory device (either removable ornot) which contains the recorded content. The entry may include all orpart of the information received from the electronic program guide. Theinformation received from the electronic program guide may beautomatically entered. The entry may also be supplemented by notes orimages from the user. The entry may contain alphanumeric characters,images, or both. The file manager may also forward the entry informationto the printer 300, either directly from the storage device 200 or viathe apparatus 100 (for example, the control unit 70) so that the entryinformation is printed on a label that can be affixed to the memorydevice. The file manager may also prompt the user, via user interface90, to place a self-stick adhesive label in the printer 300.

The user may interface with the file manager via a graphical userinterface (GUI), as is known in the art. The GUI allows the user to seewhat content is available. The GUI also indicates to the user where thecontent is stored, so the user can manually load the proper medium. Asdiscussed above, alternatively the storage device 200 couldautomatically load the proper media by using a jukebox arrangement, forexample.

As is apparent from the above, the database may be populated withinformation stored in the memory internal to the apparatus 100 or thestorage device 200, as well as pre-recorded, removable media, forexample, conventional DVDs. It is also possible that user-recordedcontent, which is stored in the memory internal to the apparatus 100 orthe storage device 200, could be saved on removable media. In theinstance, it may be advantageous to compress or modify compressionparameters to improve the storage efficiency on the removable media.Generally, the apparatus 100 permits the copying or moving of contentfrom internal, non-removable memory to external, removable memory, andvice versa.

The apparatus 100 also supports transcoding from one medium type toanother to ensure efficient storage on the target medium. One suchexample is an initial, user-initiated request to record. The content maybe recorded in internal, non-removable memory using one compressiontechnique or set of compression parameters and recorded to an external,removable memory using a different compression technique or set ofcompression parameters, to thereby improve the storage efficiency ofeach memory type. In the context of the present specification, the termtranscoding or coding is used to identify any type of compression,encryption, reformatting or other manipulation of the information tocustomize the information for the particular medium on which it is to bestored. After managing the recorded content in step 470, the flow thenproceeds to step 440 which decides whether to update the electronicprogram guide 80 as described in detail above.

As shown in FIG. 5, the inventive methods also include building theelectronic program guide. This process may start with step 500 whichcompiles the program listings. Such program listings include a channelline-up, names of programs, station information, descriptions ofprograms, and other information.

Next, step 510 determines which channels are available to the particularconsumer. As there are a variety of broadcast systems throughout theworld, the channel line-up is different for different consumers.Furthermore, consumers have a choice of broadcast system(s) from whichto choose which affects the channels available to the consumer. Step 510selects from the full spectrum of program listings those channels thatare available to the consumer.

Step 520 then winnows the program listings based on the availablechannels. In other words, the data from step 510 is utilized to winnowthe program listings to those that are available to the particularconsumer.

Step 530 then builds tags that are associated with the program listings.The tags are described above and will not be repeated here. Step 530gathers information to build the tags and associates the tags with theprogram listings.

Then, the system waits for an upload signal. If it has not beenreceived, then the process leaps back to step 500. For example, moreinformation may be available to build or supplement the tags. Also, morechannels or less channels may be available to the consumer. All of theseconsiderations are accounted for by looping through steps 500 through540 until the upload signal has been received.

When the upload signal has been received, then the uploading processbegins. Step 550 uploads the winnowed program listings and associatedtags to the electronic program guide.

Although FIG. 5 is primarily directed to processes performed by thecontent feed 10, much of this process could alternatively performed onthe consumer side by the apparatus 100. More specifically, thedetermination of the channels available to the consumer (step 510) andthe winnowing of program listings based on available channels (step 520)may be performed on the consumer side by apparatus 100, in one example,by the control unit 70 working in conjunction with the electronicprogram guide 80 and the storage device 200. In this alternative, thecontent feed 10 would supply all program listings to the apparatus 100for determination by the apparatus 100 of the available channels andwinnowing of the program listings based on available channels.

As a further alternative, the tag building step 530 may also beperformed by the apparatus 100. For example, the control unit 70 mayutilize the various communication channels 26, 28, 30, 32 and/or 34 togather information appropriate for the tags. These tags may then beassociated with the corresponding program and stored in the electronicprogram guide.

The upload signal may be sent by the control unit to the content feed ata specific time, random time, or on command of the user via userinterface 90. As mentioned above, it would be most convenient to updatethe electronic program guide during off-peak hours. By tracking theuser's viewing habits, the system can determine when these off-peakhours occur so that the downloading of the electronic program guide canoccur when the consumer is not watching TV.

FIG. 2 illustrates an alternative embodiment of the personalizedvideo-on-demand system. This alternative of FIG. 2 is specificallydesigned for reception/tuning of plural programs, simultaneous recordingof two or more programs, as well as simultaneously recording one programwhile viewing or playing back another program.

Many elements from the first embodiment of FIG. 1 are also utilized inFIG. 2. Common or like reference numerals indicate similar devices andfunctionality. The FIG. 2 embodiment supports all features describedabove in conjunction with the FIG. 1 embodiment. Additional features areemphasized below.

The transmitter 21 of content feed 10 is capable of transmitting aplurality of content streams. As further shown in FIG. 2, there are atleast two connections each provided to the internet 26, cable 28 andtelephone lines 30. Furthermore, the transmitter 22 is capable ofbroadcasting two or more content streams. Likewise, the satelliteup-link 24 is also capable of transmitting two or more content streams.

On the receiving end, the apparatus 110 includes inputs from a firstsatellite down-link 34 as well as a second satellite down-link 35. Thesesatellite down-links may be integrated into a single satellite down-linkhaving two feeds. In addition, two antennas 32, 33 are utilized.Alternatively, a single connection (satellite down-link, cable,telephone, or internet or antenna) having a split feed could also beutilized instead of the two connections described above. In other words,the connections may be configured to transmit/receive more than onecontent stream.

As further shown in FIG. 2, the apparatus 110 includes two receivers,specifically receiver/tuner 40 and receiver/tuner 41 which are connectedthe various communication devices as shown.

The output from receiver/tuners 40, 41 are provided to bus arbitrator55. Bus arbitrator 55 outputs to bus arbitrator 120 as well asdecoder/decrypter 65, storage device 205 and storage device 255. In thisway, either or both of the inputs from receivers 40, 41 can be routed tobus arbitrator 120, decoder/decrypter 65, and/or storage devices 205,255.

The decoder/decrypter 65 receives inputs from bus arbitrator 55 as wellas storage devices 205, 255. The outputs of the decoder/decrypter areprovided to the bus arbitrator 120.

Bus arbitrator 120 receives inputs from bus arbitrator 55 anddecoder/decrypter 65. The output of bus arbitrator 120 is provided tofirst display unit 271 and second display unit 272.

The decoder/decrypter 65 is similar to the decoder/decrypter 60 of theFIG. 1 embodiment, with the main difference being that decoder/decrypter65 is capable of handling a plurality of content streams. In otherwords, the decoder/decrypter 65 may simultaneously decode and/or decryptmore than one content stream.

The electronic program guide 85 is connected to the control unit 75, theuser interface 95 and an input port 82. The electronic program guide(EPG) 85 is similar to the electronic program guide (EPG) 80 of thefirst embodiment except that the EPG 85 may handle a plurality ofcontent streams. For example, the EPG 85 may be a combination of twoEPGs 80.

Similarly, the user interface 95 permits the user to enter commands forboth of the content streams rather than the single content streamhandled by the first embodiment of FIG. 1.

The control unit 75 has control outputs to the receiver/tuners 40, 41;the bus arbitrator 55; the decoder/decrypter 65; the EPG 85; the userinterface 95; the bus arbitrator 120; and the storage devices 205, 255.

The storage device 205 is similar to storage device 200 of the firstembodiment, but is preferably equipped with a plurality of read/writeunits. In other words, a storage device 205 is preferably capable ofsimultaneously recording and/or playing back at least two programs.

An optional, second storage device 255 may also be provided as furthershown in FIG. 2. This optional second storage device is connected to thefirst storage device 205 as well as to bus arbitrator 55 anddecoder/decrypter 65.

The storage devices 205, 255 are preferably modular units that can beexpanded by adding additional units therein. For example, if hard diskdrives are used for the storage devices 205, 255 then the storagecapacity can be expanded by adding additional hard disk drive units.Also, the same variety of storage media may be utilized for the storagedevices 205, 255 as described in relation to the storage device 200, 250of the first embodiment.

FIG. 6 illustrates an exemplary architecture 700 of the apparatus 100 inaccordance with another exemplary embodiment of the present invention.The architecture 700 utilizes a bus 305 to interconnect variouscomponents and to provide a pathway for data and control signals. FIG. 6illustrates a host processor 310, a memory device 315 (in an exemplaryconfiguration embodied as an SDRAM 315) and a hard disc drive (HDD) 320connected to the bus 305. The host processor 310 may also have a directconnection to SDRAM 315 as shown in FIG. 6.

As further shown in FIG. 6, a transport processor 330 and PCI I/F 340(peripheral component interconnect interface) are connected to the bus305. The transport processor 330 also has a connection to input port 325and SDRAM 335. Furthermore, the PCI I/F 340 is connected to a decoder350. The decoder 350 is connected to a TV encoder 360. The output of TVencoder 360 is in turn sent to a display device 370. Decoder 350 mayinclude both an MPEG A/V decoder 352 and an AC-3/MPEG audio decoder 356,the output of the latter being sent to display device 370 afterconversion in a digital-to-analog converter (DAC) 372.

The host processor 310 may be constructed with conventionalmicroprocessors such as the currently available Pentium™ processors fromIntel. Host processor 310 performs non real-time functions in thearchitecture 700, such as graphics-user interface and browser functions.

HDD 320 is actually a specific example of a mass storage device. Inother words, the HDD 320 may be replaced with other mass storage devicesas is generally known in the art, such as known magnetic and/or opticalstorage devices, (i.e., embodied as RAM, a recordable CD, a flash card,memory stick, etc.). In an exemplary configuration, HDD 320 may have acapacity of at least about 25 Gbytes, where preferably about at least 20Gbytes is available for various recording applications, and theremainder flexibly allocated for pause applications in architecture 700.

The bus 305 may be implemented with conventional bus architectures suchas a peripheral component interconnect (PCI) bus that is standard inmany computer architectures. Alternative bus architectures could, ofcourse, be utilized to implement bus 305.

The transport processor 330 performs real-time functions and operationssuch as control of the A/V data flow, conditional access, program guidecontrol, etc., and may be constructed with an ASIC (application specificintegrated circuit) that contains, for example, a general purpose R3000AMIPS RISC core, with sufficient on-chip instruction cache and data cachememory. Furthermore, the transport processor 330 may integrate systemperipherals such as interrupt, timer, and memory controllers on-chip,including ROM, SDRAM, DMA controllers; a packet processor, crypto-logic,PCI compliant PC port, and parallel inputs and outputs. Theimplementation shown in FIG. 6 actually shows the SDRAM 335 as beingseparate from the transport processor 330, it being understood that theSDRAM 335 may be dispensed with altogether or consolidated with SDRAM315. In other words, the SDRAMs 315 and 335 need not be separate devicesand can be consolidated into a single SDRAM or other memory device.

The input port 325 receives audiovisual bitstreams from at least twotuners 40 that may include, for example, MPEG-1 and MPEG-2 videobitstreams, MPEG-1 layer II audio bitstreams and Dolby digital (AC-3)audio bitstreams. Exemplary A/V bitrates may range from about 60 Kbps to15 Mbps for MPEG video, from about 56-384 Kbps for MPEG audio, andbetween about 32-448 Kbps for AC-3 audio. The single-stream maximumbitrate for architecture 700 may correspond to the maximum bitrate ofthe input programming, for example 16 Mbps or 2 MBps, which correspondsto the maximum MPEG-2 video bitrate of 15 Mbps, maximum MPEG-1 Layer-2audio bitrate of 384 kbps, and maximum AC-3 bitrate of 448 kbps.

Of course, various other audiovisual bitstream formats and encodationtechniques may be utilized in recording. For example, architecture 700may record an AC-3 bitstream, if AC-3 broadcast is present, along withMPEG-1 digital audio. Still further, the received audiovisual data maybe encrypted and encoded or not encrypted and encoded. If theaudiovisual data input via the input port 325 to the transport processor330 is encrypted, then the transport processor 330 may performdecryption. Moreover, the decryption may be performed instead by thehost processor 310.

Alternatively, the host processor 310 and transport processor 330 may beintegrated or otherwise replaced with a single processor. As mentionedabove, the SDRAMs (315 and 335) may be consolidated or replaced with asingle SDRAM or single memory device.

The PCI I/F 340 may be constructed with an ASIC that controls data readsfrom memory. Audiovisual (A/V) data may be sent to the host processor310's memory while simultaneously being sent to an MPEG A/V decoder 352,as further discussed below.

As previously noted, decoder 350 may be constructed as shown in FIG. 6by including the MPEG A/V decoder 352 connected to the PCI I/F 340, aswell as an AC-3/MPEG audio decoder 356 which is also connected to thePCI I/F 340. In this way, the video and audio bitstreams from the PCII/F 340 can be separately decoded by decoders 352 and 356, respectively.Alternatively, a consolidated decoder may be utilized that decodes bothvideo and audio bitstreams together. As mentioned above, the encodationtechniques are not limited to MPEG and AC-3 and can include any known orfuture developed encodation technique. In a corresponding manner, thedecoder 350 could be constructed to process the selected encodationtechnique(s) utilized by the particular implementation desired.

In order to more efficiently decode the MPEG bitstream, the MPEG A/Vdecoder 352 may also include a memory device such as SDRAM 354 connectedthereto. This SDRAM 354 may be eliminated, consolidated with decoder 352or consolidated with the other SDRAMs 315 and/or 335.

TV encoder 360 is preferably an NTSC encoder that encodes, or convertsthe digital video output from decoder 350 into a coded analog signal fordisplay. Regarding the specifications of the NTSC (National TelevisionStandards Committee) encoder 360, the NTSC is responsible for settingtelevision and video standards in the United States. The NTSC standardfor television defines a composite video signal with a refresh rate of60 half-frames (interlaced) per second. Each frame contains 525 linesand can contain 16 million different colors.

In Europe and the rest of the world, the dominant television standardsare PAL (Phase Alternating Line) and SECAM (Sequential Color withMemory). Whereas NTSC delivers 525 lines of resolution at 60 half-framesper second, PAL delivers 625 lines at 50 half-frames per second. Manyvideo adapters or encoders that enable computer monitors to be used astelevision screens support both NTSC and PAL signals. SECAM uses thesame bandwidth as PAL but transmits the color information sequentially.SECAM runs on 625 lines/frame.

Thus, although use of NTSC encoder 360 is envisioned to encode theprocessed video for display on display device 370, the present inventionis not limited to this standard encoder. PAL and SECAM encoders may alsobe utilized. Further, hi-definition television (HDTV) encoders may alsobe viable to encode the processed video for display on a HDTV, forexample.

Display device 370 may be an analog or digital output device capable ofhandling a digital, decoded output from the TV encoder 360. If analogoutput device(s) are desired, to listen to the output of the AC-3/MPEGaudio decoder 356, a digital-to-analog converter (DAC) 372 is connectedto the decoder 350. The output from DAC 372 is an analog sound output todisplay device 370, which may be a conventional television, computermonitor screen, portable display device or other display devices whichare known and used in the art. If the AC-3/MPEG digital audio data areto be decoded by an external audio component, a digital audio outputinterface (not shown) may be included between the AC-3/MPEG audiodecoder 356 and display device 370. The interface may be a standardinterface known in the art such as a SPDIF audio output interface.

FIG. 7 illustrates various components that may be provided for the SDRAM315. As mentioned above, the SDRAM shown in FIG. 6 is actually aspecific implementation of a memory device. It is noted that theinvention is not limited to this specific implementation of SDRAM 315and can include any other known or future developed memory technology.Regardless of the technology selected, the memory device 315 may includea buffer space 316 which may be a fixed or virtual set of memorylocations that buffers or otherwise temporarily stores audiovisual data.In practice, the video data may be stored separate from the audio data,but it would be possible to intermix these data types depending upon theparticular application and coding techniques utilized for the audio andvisual data.

The audio visual data stored in the buffer space 316 includes one ormore start addresses 317 which indicate the beginning memory address atwhich the audio and/or video data (A/V) is stored. If the A/V data isseparately stored, then a plurality of stored addresses will benecessary. Furthermore, if there are more than one set of, or a block ofdata within the buffer space 316, then the start addresses 317 willindividually point to each block of data.

The memory device 315 also includes a status word space 318. This statusword space includes fixed or virtual addresses at which status words maybe stored. An example of a status word that may be stored in the statusword space 318 is a status word summarizing the status of a peripheraldevice. For example, the status word that may be stored within thestatus word space 318 may include the status of the host processor 310or transport processor 330. The status word space 318 may also includepointers 319 that point to the start addresses 317 within the bufferspace 316.

As further shown in FIG. 7, the SDRAM 315 may connect to the bus 305 viaan interface 314. The dash lines indicate that the interface 314 isoptional and may or may not be included depending upon the interfacerequirements of the particular memory device 315 and/or bus 305.

Exemplary recording and playback paths are described in accordance withFIGS. 8 and 9. FIG. 8 shows the recording and playback data flows amongthe various components of the architecture 700. Some of the connectionsbetween components, and associated reference numerals from FIG. 6 mayhave been eliminated in FIG. 8 in order to highlight the data flow whichis shown using dashed lines (see Key) in FIG. 8.

As shown in FIG. 8, A/V data of a selected or desired event, programand/or broadcast from at least two tuners 40 is received by input port325 (typically the data is received in packetized form) and fed to thetransport processor 330. The transport processor 330 then transfers thereceived A/V data to SDRAM 315. Digital recording is accomplished by thehost processor 310, which transfers the A/V data buffered by SDRAM 315to the HDD 320. In other words, the SDRAM 315 serves as a buffer whichbuffers data sent by transport processor 330. This allows the hostprocessor 310 to control the recording onto the HDD 320 when hostprocessor 310 time is available. When a sufficient amount of programmingdata has been accumulated in the SDRAM 315, the host processor 310transfers the data from the SDRAM 315 to the HDD 320 for recordingtherein.

FIG. 9 illustrates an alternative signal path for recording. Audiovisualdata is fed from the input port 325 to the transport processor 330. Thetransport processor 330 then transfers the received audiovisual data tothe PCI I/F 340, as indicated by the dashed data flow line. The PCI I/F340 receives audiovisual data from the transport processor 330 via bus305, and sends this data to host processor 310, more particularly toSDRAM 315.

Digital recording is accomplished similarly, with SDRAM 315 serving as abuffer that buffers data sent by the PCI I/F 340. This allows the hostprocessor 310 to control the recording onto the HDD 320 when processortime is available. When a sufficient amount of A/V data has beenaccumulated in the SDRAM 315, the host processor 310 transfers the datafrom the SDRAM 315 to the HDD 320 for recording therein. To record data,the host processor 310 may also inform the PCI I/F 340 of availablestart addresses in the SDRAM buffer space 315 to which data may bebuffered for eventual recording in HDD 320.

The operation of playing back the recorded A/V data that represents astored event, program, broadcast, etc. in architecture 700 is nowdescribed. Referring again to FIGS. 8 and 9, when the viewer turns theapparatus 100 on, the viewer is given the option to playback any of thepreviously recorded programs, events, broadcast, etc. Preferably, thismay be done by using remote control (not shown) to access a menu ondisplay device 370. If the viewer selects a desired event, thecorresponding A/V data (which typically may also include system time andconditional access packets) are retrieved from HDD 320.

In particular, when the user selects the playback option, the selectedA/V data recorded on HDD 320 is sent via bus 305 to a queue in SDRAM315. Next, the buffered data is sent from SDRAM 315 via bus 305 to PCII/F 340, which in turn sends the selected A/V data to decoder 350. Morespecifically, the video portion of the bitstream is sent to MPEG A/Vdecoder 352, with the audio portion being sent to AC-3/MPEG audiodecoder 356. Alternatively, MPEG video and audio can be conveyed to MPEGA/V decoder 352.

Within decoder 350, MPEG A/V decoder 352 may be provided with an SDRAM354 in order to more efficiently decode the MPEG bitstream received fromPCI I/F 340. SDRAM 354 is similar to SDRAM 315 discussed above in itsconstruction. SDRAM 354 temporarily holds the encoded video bitstreamdata, and also provides the three frame buffers required for MPEGdecoding, as is known in the art. Thereafter, the decoded A/V data isoutput to TV encoder 360 for conversion to an analog format, so that itmay be displayed on display device 370. From this point on, the playbackdata looks, for all intents and purposes, identical to the originallyrecorded event, program, broadcast, etc.

FIG. 2 illustrates another exemplary embodiment. The embodiment of FIG.2 generally operates as follows. For further details on an exemplarymethod of operation, further reference is made to FIG. 10 which isexplained below in detail.

As mentioned above, a plurality of content streams may be fed toapparatus 110 of the second embodiment. For example, two simultaneouscontent streams can be provided to the receiver/tuners 40, 41. The busarbitrator 55 can switch either or both of these content streams andprovide the output to various devices.

If recording is desired, then the control unit 75 directs the busarbitrator 55 to switch the content from receiver/tuners 40, 41 to thestorage device 205. In this way, two programs from two separate contentstreams can be simultaneously recorded by the storage device 205.Alternatively, one of the programs can be fed to storage device 205while the other is fed to storage device 255.

Some of the features performed by the various exemplary embodiments ofthe present invention are described below.

As described above in conjunction with FIG. 3, a user may select asingle or multiple recorded events from a program guide or scheduler,such EPG 85, for viewing based on actors, actresses, directors, programtitle, key words, key phrases, synopsis, release date, critical review,related programs, sequels, a thumbnail, a preview, a snippet, or otherinformation concerning or relating to the content. In one embodiment,the user activates this “intelligent agent” feature via an input devicesuch as a remote control. For example, the user may display the EPG 85on the screen of a display unit, such as first display 271 or seconddisplay unit 272 and activate one or more menu screens for entering keyword information such as the tag information described above or phrasesthat the user has pre-assigned to programs.

Alternatively, the user may initiate a browse function to search alisting of programs stored on HDD 320, which may be organizedalphabetically, by category of program (i.e., drama, comedy, actionadventure, etc.) and/or by organizational structure created by the user.For example, a user may assign “record channel” numbers to variousrecorded programs, whereby the user may click up or down a channellisting menu screen to select a desired channel. Once selected, thescreen may display a listing of recorded programming assigned to thatchannel, grouped by key word such as title, for example.

Another feature of the control unit 75 is the implementation of aduplicate episode filter. This feature of control unit 75 tracks thelist of recorded programs for duplicates when a record operation isinitiated. When a user selects a record operation, the control unit 75references the storage devices 205, 255, to check certaincharacteristics of the selected program to be recorded with theinformation stored in memory devices 210, 215, 220, 225 . . . 230, 235.If a match is determined, a notification may visually be displayed forthe user.

In order to identify a match, characteristics such as the taginformation described above, or unique call numbers may be compared. Inone exemplary embodiment, the first display unit 271 or second displayunit 272 may display the characteristics of the selected program torecord with the best match in memory in a side-side fashion, for ease ofcomparison by the user. Alternatively, the user may be prompted with thenotification and the option to view the possible match so as to confirmthat the user is about to record a duplicate of a recorded program.

Additionally, the user may be provided with a halt recording option ifthe duplicate episode filter feature has identified a match, where thecontrol unit 75 sends a prompt or notification after the match, askingthe user if they would like any or all portions of the duplicate episodeto be erased. Alternatively, the user may activate an automaticpreference to have the control unit 75 erase any recording of a programthat is identified as a duplicate episode by the duplicate episodefilter feature.

An active snapshot is another operational mode of the present inventionwhich dumps the A/V stream from the TV encoder 360 to another devicesuch as a PC or other output device. In this way, the active snapshotcan offload A/V segments (or entire programs or even the entire contentsof the HDD 320) to another device. This active snapshot may beaccomplished by feeding the decoded stream from the decoders 352, 356(MPEG A/V decoder and/or AC-3/MPEG Audio decoder) to the display device370 as shown in FIG. 6, for example. The output device 370 may be a PC,another HDD, CDR (recordable CD), or other digital device capable ofstoring the data.

Alternatively, the active snapshot may dump encoded or decoded data toan external device by having the host processor 310 route data from theHDD 320 to the PCI bus and eventually to the external device.

As a further alternative, the active snapshot can dump analog data tothe analog output device by feeding the decoded stream from the decoders352, 356 (MPEG A/V decoder and/or AC-3/MPEG Audio decoder) to the DAC372 and TV encoder 360 which converts the digital, decoded stream to ananalog signal. The analog signal is then supplied to an analog displaydevice 370 as shown in FIG. 6. The analog output device 370 may be aconventional VCR or other analog mass storage device.

If simultaneous record and playback is desired, then control unit 75directs one of the content streams from receiver/tuner 40, 41 to thestorage device 205 by sending a control signal to bus arbitrator 55. Atthe same time, the control unit 75 can control the storage device 205 or255 to playback another program previously recorded therein which is fedfrom the storage device 205 or 255 to decoder/decrypter 65 and then tobus arbitrator 120. Further control can then be exercised by controlunit 75 which can control bus arbitrator 120 to feed the playback orrecord program to either or both display units 271, 272.

The display units 271, 272 may be separate display devices or may beintegrated in a single display device. For example, conventionalpicture-in-picture display devices can handle two simultaneous inputstreams and such a device is within the scope of this invention.

The exemplary embodiments of the present invention may also be providedwith a status indicator function which can be displayed via a userinterface to the apparatus 100, such as with a remote control unit forexample. The following features may be provided: current delay, statusindicator, available record time, HDD 320 capacity (Disk Gas Gauge),out-of-disk space alert and certain file attributes. These features aresummarized in Table 1 below.

TABLE 1 Special Features Feature Description Automatic record Themerecording base on program title, keywords or key phrases Duplicate showhandling Will not record two copies of the same show On-screen timedisplay Display the current time into the show, ie. 0:34, 1:12 etc whilein Playback, Fast- forward or Rewind Back to pause After resume livebroadcast, jump back to last pause point Active Snapshot Dumpaudio/video to PC or other output device Smart delete Once a show isrecorded, it can be set it to never be deleted

The current delay feature allows the user to see how far the recordingis behind a live feed when pausing the live signal. The status indicatormay be displayed on the display device 370, and indicates whether thematerial a viewer is watching is LIVE (a live feed) or RECORDED. In oneembodiment, the status indicator may flash LIVE or RECORDED on theoutput device 370. The available record time feature indicates theamount of time available for recording (in minutes, for example).

If simultaneous playback of two programs is desired, then control unit75 controls the storage devices 205 and/or 255 to simultaneouslyplayback two previously recorded programs. These programs are fedthrough decoder/decrypter 65 into bus arbitrator 120. Preferably,control unit 75 would then control arbitrator 120 to switch one of theprograms to the first display unit number 271 while the other isdirected to the second display unit 272.

If the user wants to view a live broadcast while recording anotherprogram, then the control unit 75 operates as follows. In this example,it is assumed that the live program to be viewed is being received bythe first receiver/tuner 40. Control unit 75 then sends a control signalto bus arbitrator 55 to route the live broadcast program to either thebus arbitrator 120 or the decoder/decrypter 65. This decision is madedepending on whether the live broadcast requires decoding and/ordecryption. Depending upon which display unit is intended for viewing,the control unit 75 controls the bus arbitrator 120 to route the decodedand/or decrypted content to the appropriate display unit 271, 272. If nodecryption or decoding is necessary, then control unit 75 directs thebus arbitrator 55 to route the content directly to bus arbitrator 120which can then send the live broadcast to either of the display units271, 272.

A clear/convert function is another feature of the present inventionwhich permits a user to convert a paused program to a permanentlyrecorded program. For example, when the apparatus 100 is turned on, anauto pause function may be enabled that automatically pauses (records)the currently-tuned channel. The user could then be given the option toconvert this paused program to a permanently recorded program.Alternatively, a channel surfing user who pauses a program and who, atsome point within the pause window, decides that the program is worthpermanently recording could, for example, press an button on the remotecontrol to command the apparatus 100 to permanently record the program.

As another alternative, as the duration of the pause approaches thepause time window, the user could be prompted with a query such as“permanently record?” If yes, then the program is converted from apaused program to a permanently recorded program. In this way, the userwill not lose any of the program that may have otherwise extended beyondthe pause time window.

As yet another alternative, a channel change from channel #1 to channel#2 converts paused channel #1 to recorded channel #1, begins pause ofchannel #2 and provides user with option to clear recorded channel #1.

To convert from a paused to a recorded program, the apparatus 100 maymove the paused program from a portion of the HDD 320 reserved forpausing to a portion reserved for recorded programs. Alternatively, theHDD 320 directory may be updated to reallocate space such that thepaused program now resides in a virtual recorded program HDD 320 space.Such moves or HDD directory updates may be performed by the hostprocessor 310.

A personal instant replay is another feature of the present inventionwhich permits a variable back tracking instant replay (up to the lengthof pause). The amount to back track may correspond to the duration theremote control button is depressed. The mechanism for instant replay maybe identical to that of playback. Furthermore, an infinite loop may beestablished so that the instant replay is played again and again untilstopped by command of the user. Alternatively, the playback may stopwhen a certain number of loops have been completed.

If the consumer wants to see two live broadcasts with no recording, thenthe control unit 75 controls bus arbitrator 55 to route both receivedcontent streams to either decoder/decrypter 65 or to bus arbitrator 120depending upon whether decryption and/or decoding is necessary.Thereafter, the displays can be switched by bus arbitrator 120 under thecontrol unit 75 to the appropriate displays 271, 272.

A back to pause function is another feature of the present inventionwhich may also be triggered with the remote control. The back to pausefunction jumps back to the paused time location. More specifically,after resuming a live broadcast from a paused program, the back to pausefunction jumps back to last pause point. In other words, the A/V streamis played back from the last pause point.

As can be seen from the above description, the FIG. 2 embodiment ishighly advantageous and permits a variety of functions. For example, auser can simultaneously record at least two content streams on thestorage devices 205 or 255. In this way, the video-on-demand library canbe quite rapidly accumulated.

Furthermore, the FIG. 2 embodiment permits the simultaneous viewing ofone program while another is being recorded. In this way, a consumer canwatch his television in the normal manner while still accumulating avideo-on-demand library in the background. When the live televisionbroadcast gets boring or is no longer interesting, then the user canswitch to the video-on-demand library that has been accumulating duringhis viewing or at other times.

Furthermore, the electronic program guide 85 permits a user to navigatethe plurality of desired content, make appropriate selections and buildthe video-on-demand library that most suits his needs.

FIG. 10 further illustrates some of the methods utilized by the secondembodiment. Generally speaking, FIG. 10 resolves scheduling conflictsbetween two or more programs.

More specifically, the process of FIG. 10 begins by scanning theelectronic program guide 85 for a match. This is similar to the processdescribed in relation to step 430 in FIG. 4. One difference is that step600 may scan for more than one match.

Step 610 determines if there is at least one match. If not, then theprocess loops back to step 600. If there is at least one match, then theflow proceeds to step 620 which determines whether there is a schedulingconflict. More specifically, step 620 determines whether the recordingof one program matching the consumer's desires would overlap with therecording of another program matching the consumer's desires.

If there is no conflict, then the flow proceeds to step 630 whichrecords the matching content. Thereafter, the file manager is updated ina manner similar to step 460 in FIG. 4 and the flow proceeds to step 670which is described below.

If there is a conflict, then step 650 performs multiple recording of theplurality of programs matching the consumer's desires. This process isgenerally described above and utilizes the control unit 75 to switch thedesired content through bus arbitrator 55 to the storage devices 205 or255. The switching is controlled on a scheduled basis according to thetime schedule of each program. Multiple recording continues as long asthere is an overlap between the schedules.

Step 660 determines whether all recording has finished. If so, then thefile manager is updated in step 640 which process is described above.

If all recording has not been finished, then a further decision is madein step 670 to determine whether there is one or more recording to becompleted. If so, then the process loops back to step 600 which againscans the electronic program guide 85 for another match. In this way,the system can continue recording at least two programs simultaneously.

Although the above description relates to recording two programssimultaneously, the embodiment of FIG. 2 can be extended to record threeor more programs simultaneously. Essentially, the components of FIG. 2would be multiplied such that there would be N receivers/tuners and thestorage devices would be capable of recording N programs simultaneously.

As described above, the various exemplary embodiments of the presentinvention include several modes, including, but not limited to recordingtwo or more signals where one or both may also be simultaneously viewed,recording one or more signals and playing back one or more signals,playing back two or more signals, watching one or more signals, whilerecording one or more other signals, viewing two or more live signals(through the use of picture-in-picture or other similar function), andviewing at least one signal live, while viewing one or more signals inplayback mode. It is noted that the various functions described abovemay be utilized in conjunction with one or more of these modes. Forexample, the intelligent agent duplicate filter, and active snapshotfunctions may be used with any recording mode, the status indicator andpersonal instant replay features may be utilized with any playback mode,and the status indicator, clear convert, record after watching, andpersonal instant replay functions may be utilized in any live viewingmode. The back to pause function may be utilized to jump between any twoor more live or playback signals.

Although most of the specification is directed to devices and methodsfor handling video content, the invention also applies to audio content,data content or mixed content. In other words, the content feed maysupply audio or data content to the apparatus 100 or 110.

For example, the decoder/decrypter 60, 65 could be reconfigured todecode and/or decrypt audio data. In addition, the MP3 standard(currently MPEG-1 Layer III), the Windows Media Audio (WMA) standard orother conventional decoding schemes as well as conventional decryptingschemes may be utilized by decoder/decrypter 60, 65 to decode and/ordecrypt the audio content. Furthermore, the display units 270, 271, 272would be speakers or other audio reproduction devices instead of videodisplay units in this alternative. Otherwise, the systems and methods ofthe invention would work in much the same manner to aggregate anaudio-on-demand library.

In at least one embodiment described above, the present inventioncontemplates the concurrent use of internal, non-removable memory andexternal, removable memory. In at least one embodiment described above,the present invention also contemplates recording content in aninternal, non-removable memory prior to recording in an external,removable memory, where the recording to the external, removable memorycan occur in a background mode. In at least one embodiment describedabove, the present invention also contemplates recording content bystreaming directly to the removable medium. In at least one embodimentdescribed above, the present invention also contemplates playing back byrecording from the external, removable memory into the internal,non-removable memory and then playing back from the internal,non-removable memory. As mentioned above, the invention may also beapplied to aggregate desired data. If data is being aggregated by thepresent invention, then the system may be labeled a personal data serverfarm. For example, a personal data server farm according to theinvention may aggregate a data-on-demand library such as a library ofdesired usenet news. The consumer could designate usenet newsgroups thatinterest that user using the user interface 90 and, perhaps anelectronic program guide 80 and the system would then aggregate alibrary of usenet news. This aggregated library of data may then bemanipulated on-demand of the user. Various other types of data may beaggregated by the invention with usenet news being only an illustrativeexample. If the invention is being applied to aggregate data content,then the decoding and/or decrypting schemes may utilize schemesappropriate to decoding and/or decrypting data. Furthermore, if the datais being broadcast according to a schedule then the scheduling andscheduling conflict resolution features described above in terms ofaudio data may be applied to such broadcast data.

Furthermore, the inventive apparatus 100, 110 may be embodied in avariety of ways. A set-top box is one example. Other examples include apersonal computer (PC), TV or hardware card that is added to an existingapparatus such as a conventional set-top box, PC or TV. Still further,the inventive functionality may be downloaded or otherwise programmedinto a set-top box, PC or TV. Such programming may be accompanied byconnecting the programmed device to a storage device such as hard discdrive array 200. Furthermore, although FIGS. 1 and 2 illustrateelectronic program guides 80, 85 as part of the apparatus 100, 110, theelectronic program guide content could also be provided by the contentfeed 10.

It is noted that the functional blocks in FIGS. 1-2 and 6-9 may beimplemented in hardware and/or software. The hardware/softwareimplementations may include a combination of processor(s) and article(s)of manufacture. The article(s) of manufacture may further includestorage media and executable computer program(s). The executablecomputer program(s) may include the instructions to perform thedescribed operations. The computer executable program(s) may also beprovided as part of externally supplied propagated signal(s) either withor without carrier wave(s).

The invention being thus described, it will be obvious that the same maybe varied in many ways. Such variations are not to be regarded asdeparture from the spirit and scope of the invention, and all suchmodifications as would be obvious to one skilled in the art are intendedto be included within the scope of the following claims.

What is claimed is:
 1. A method of storing data including broadcastprogramming and recorded programming, comprising: receiving a command topause a currently viewed broadcasting program; temporarily storing thecurrently viewed broadcast program to storage dedicated for pausing;receiving, subsequent to receiving the command to pause, a user commandto record the paused broadcast program; automatically executing aduplicate filter function in response to the user command, wherein theduplicate filter function compares the paused broadcast program with alist of previously recorded programs; and automatically triggering anaction based upon the comparison of the paused broadcast program withthe list of previously recorded programs.
 2. The method of claim 1,further comprising selecting the currently viewed broadcast programbased on actor, actress, director, program title, key word, key phrase,tag information, synopsis, release date, critical review, relatedprogram, or sequel.
 3. The method of claim 2, wherein selecting thecurrently viewed broadcast program further comprises browsing throughinformation related to the broadcast programming stored on at least onestorage medium.
 4. The method of claim 1, further comprising displayinga status along with the currently viewed program.
 5. The method of claim4, wherein the status includes at least one of: a current delay, astatus indicator, an available record time, a storage medium capacity,and an out-of-space alert.
 6. The method of claim 5, wherein the currentdelay comprises a delay between the currently viewed program and a livefeed of the currently viewed broadcast program.
 7. The method of claim6, further comprising rewinding the currently viewed broadcast programin an increment for playback of a portion of the currently viewedbroadcast program.
 8. The method of claim 1, further comprising creatinga personalized database from at least the broadcast programming.
 9. Themethod of claim 1, further comprising activating a preference to eraserecording of the currently viewed broadcast program if the tunedbroadcast program is found on the list.
 10. The method of claim 1,wherein at least one of the previously recorded programs was recordedbased on a selection of a thumbnail, a preview, or a snippet.
 11. Themethod of claim 1, wherein the action comprises automatically providinga user notification that the paused program matches a previouslyrecorded program.
 12. The method of claim 11, wherein the action furthercomprises providing an option to view the matching previously recordedprogram.
 13. The method of claim 11, wherein the action furthercomprises providing an option to selectively terminate and erase therecording of the paused broadcast program matching the previouslyrecorded program.
 14. The method of claim 11, further comprising thestep of: subsequent to providing the user notification, terminating anderasing the recording of any or all of the paused broadcast program whenthe paused broadcast program is found in the list.
 15. The method ofclaim 1, wherein the action comprises the step of: automaticallyterminating and erasing the recording of any or all of the pausedbroadcast program when the paused broadcast program is found in thelist, and completing the recording of the paused program when the pausedprogram is absent from the list by moving the paused program from thestorage dedicated for pausing to storage dedicated for recordedprograms.
 16. An apparatus for managing data storage of broadcastprogramming and recorded programming, comprising: a storage medium, anda control unit, wherein the control unit is controllable to: receive acommand to pause a tuned program; temporarily store the paused tunedprogram in a portion of the storage medium reserved for pausing; receivea user command to record the paused tuned program subsequent toreceiving the command to pause; automatically execute a duplicate filterfunction in response to the user command, wherein the duplicate filterfunction compares the paused tuned program with a list of previouslyrecorded programs; and automatically triggering an action based upon anactivated preference and the comparison of the paused tuned program withthe list of previously recorded programs.
 17. The apparatus of claim 16,wherein the control unit selects the tuned program based on actor,actress, director, program title, key word, key phrase, tag information,synopsis, release date, critical review, related program, or sequel. 18.The apparatus of claim 17, wherein the control unit selects the tunedprogram by browsing through information related to the broadcastprogramming stored on at least one storage medium.
 19. The apparatus ofclaim 16, wherein the control unit displays a status along with acurrently viewed program.
 20. The apparatus of claim 19, wherein thestatus includes at least one of: a current delay, a status indicator, anavailable record time, a storage medium capacity, and an out-of-spacealert.
 21. The apparatus of claim 20, wherein the current delaycomprises a delay between the currently viewed program and a live feedof the currently viewed program.
 22. The apparatus of claim 21, whereinthe control unit is further controllable to rewind the currently viewedprogram in an increment for playback of a portion of the currentlyviewed program.
 23. The apparatus of claim 16, wherein the control unitis further controllable to create a personalized database from thebroadcast programming.
 24. The apparatus of claim 16, wherein thecontrol unit is further controllable to activate a preference to eraserecording of a tuned broadcast program if the tuned broadcast program isfound on the list.
 25. The apparatus of claim 16, wherein at least oneof the previously recorded programs was recorded based on a selection ofa thumbnail, a preview, or a snippet.
 26. The apparatus of claim 16,wherein the action comprises automatically providing a user notificationthat the paused program matches a previously recorded program.
 27. Theapparatus of claim 26, wherein the action further comprises providing anoption to view the matching previously recorded program.
 28. Theapparatus of claim 26, wherein the action further comprises providing anoption to selectively terminate and erase the recording of the pausedbroadcast program matching the previously recorded program.
 29. Theapparatus of claim 16, wherein the action comprises the step of:automatically terminating and erasing the recording of any or all of thepaused broadcast program when the paused broadcast program is found inthe list based on the activated preference, and completing the recordingof the paused program when the paused program is absent from the list bymoving the paused program from the storage dedicated for pausing tostorage dedicated for recorded programs.
 30. A method of storing data,comprising: receiving a broadcast program; in response to receiving apause command during reception of the broadcast program, temporarilystoring the received broadcast program to storage dedicated for pausing;in response to receiving, subsequent to the pause command, a usercommand to record the paused broadcast program: executing a duplicatefilter function in response to the user command that determines if thepaused broadcast program is a previously recorded program; automaticallytriggering an action based upon the determination if the pausedbroadcast program is a previously recorded program.
 31. The method ofclaim 30, further comprising selecting the broadcast program forreception based on actor, actress, director, program title, key word,key phrase, tag information, synopsis, release date, critical review,related program, or sequel.
 32. The method of claim 31, whereinselecting the broadcast program for reception further comprises browsingthrough information related to the broadcast programming stored on atleast one storage medium.
 33. The method of claim 30, further comprisingdisplaying a status along with a currently viewed program.
 34. Themethod of claim 33, wherein the status includes at least one of: acurrent delay, a status indicator, an available record time, a storagemedium capacity, and an out-of-space alert.
 35. The method of claim 24,wherein the current delay comprises a delay between the currently viewedprogram and a live feed of the currently viewed program.
 36. The methodof claim 35, further comprising rewinding the currently viewed programin an increment for playback of a portion of the currently viewedprogram.
 37. The method of claim 30, further comprising creating apersonalized database from at least the broadcast programming.
 38. Themethod of claim 30, further comprising activating a preference to eraserecording of the paused broadcast program if the paused broadcastprogram is determined to be a previously recorded program.
 39. Themethod of claim 30, wherein the previously recorded program is one of aplurality of previously recorded programs that was recorded based onselection of a thumbnail, a preview, or a snippet.
 40. The method ofclaim 30, wherein the paused received broadcast program is determined bythe duplicate filter function to be a previously recorded program if acharacteristic of the paused broadcast program matches a storedassociated characteristic of the previously recorded program.
 41. Themethod of claim 30, wherein the action comprises automatically providinga user notification that the paused broadcast program matches apreviously recorded program.
 42. The method of claim 41, wherein theaction further comprises providing an option to view the matchingpreviously recorded program.
 43. The method of claim 41, wherein theaction further comprises providing an option to selectively terminateand erase the recording of the paused broadcast program matching thepreviously recorded program.
 44. The method of claim 41, furthercomprising the step of: Subsequent to providing the user notification,terminating and erasing the recording of the paused broadcast program ifthe paused broadcast program is determined, by the duplicate filterfunction, to be a previously recorded program.
 45. The method of claim30, wherein the action comprises the step of: automatically terminatingand erasing the recording of the paused broadcast program if the pausedbroadcast program is determined, by the duplicate filter function, to bea previously recorded program, and completing the recording of thepaused broadcast program by storing the paused broadcast program instorage allocated to recorded programs if the duplicate filter functiondetermines that the paused program is not a previously recorded program.46. An apparatus for managing data storage, comprising: a storagemedium, and a control unit, wherein the control unit is controllable to:receive a pause command while receiving a broadcast program; temporarilystore the paused received program in a portion of the storage mediumreserved for pausing; receive a user command to record the pausedreceived broadcast program, subsequent to receiving the pause command;automatically execute a duplicate filter function in response to theuser command, wherein the duplicate filter function determines if thepaused broadcast program is a previously recorded program; andautomatically trigger an action based upon the determination if thepaused broadcast program is a previously recorded program.
 47. Theapparatus of claim 46, wherein the control unit selects the broadcastprogram for reception based on actor, actress, director, program title,key word, key phrase, tag information, synopsis, release date, criticalreview, related program, or sequel.
 48. The apparatus of claim 47,wherein the control unit selects the received broadcast program forreception by browsing through information related to the broadcastprogramming stored on at least one storage medium.
 49. The apparatus ofclaim 46, wherein the control unit displays a status along with acurrently viewed broadcast program.
 50. The apparatus of claim 49,wherein the status includes at least one of: a current delay, a statusindicator, an available record time, a storage medium capacity, and anout-of-space alert.
 51. The apparatus of claim 50, wherein the currentdelay comprises a delay between the currently viewed program and a livefeed of the currently viewed program.
 52. The apparatus of claim 51,wherein the control unit further is controllable to rewind the currentlyviewed program in an increment for playback of a portion of thecurrently viewed program.
 53. The apparatus of claim 46, wherein thecontrol unit further is controllable to create a personalized databasefrom the broadcast programming.
 54. The apparatus of claim 46, whereinthe control unit is further controllable to activate a preference toerase recording of the currently viewed program if the currently viewedprogram is determined to be a previously recorded program.
 55. Theapparatus of claim 46, wherein the previously recorded program is one ofa plurality of previously recorded programs that was recorded based onselection of a thumbnail, a preview, or a snippet.
 56. The apparatus ofclaim 46, wherein the paused received broadcast program is determined,by the duplicate filter function, to be a previously recorded program ifa characteristic of the paused broadcast program matches a storedassociated characteristic of the previously recorded program.
 57. Themethod of claim 46, wherein the action comprises automatically providinga user notification that the paused broadcast program matches apreviously recorded program.
 58. The method of claim 57, wherein theaction further comprises providing an option to view the matchingpreviously recorded program.
 59. The method of claim 57, wherein theaction further comprises providing an option to selectively terminateand erase the recording of the paused broadcast program matching thepreviously recorded program.
 60. The method of claim 46, wherein theaction comprises the step of: selectively terminating and erasing therecording of the paused received broadcast program if the pausedreceived broadcast program is determined, by the duplicate filterfunction to be a previously recorded program based on the activatedpreference, and completing the recording of the paused receivedbroadcast program by storing the broadcast program in storage allocatedto recorded programs if the duplicate filter function determines thatthe paused received broadcast program is not a previously recordedprogram.